//
// Created by dddgzc on 2025/1/23.
//

#ifndef SCENE_MANAGER_H
#define SCENE_MANAGER_H
#include <Scene.h>

#include "Camera.h"

extern Scene* mainMenuScene;
extern Scene* playerSelectionScene;
extern Scene* gameScene;

class SceneManager {
public:
    enum class SceneType {
        MainMenuScene = 1, // 按任意键开始的那个界面
        PlayerSelectionScene, // 选校色的那个界面
        GameScene, // 游戏游玩的界面
    };

    SceneManager() = default;
    ~SceneManager() = default;

    void setCurrentScene(Scene* scene);
    void switchTo(SceneType sceneType);

    // 渲染时
    void onDraw(const Camera& camera) const;
    // 数据更新
    void onUpdate(int delta) const;
    // 按键输入
    void onInput(const SDL_Event &e) const;
private:
    Scene* currentScene = nullptr;
};



#endif //SCENE_MANAGER_H
